
import * as THREE from 'three';

function testNormalFunc(scene) {
    // --------------------- 顶点位置属性 ---------------------
    // 创建一个空的几何体对象
    const geometry = new THREE.BufferGeometry();
    // 顶点坐标
    let vertices = new Float32Array([
        0, 0, 0, //顶点1坐标
        50, 0, 0, //顶点2坐标
        0, 100, 0, //顶点3坐标
      
        0, 0, 0, //顶点4坐标
        0, 0, 100, //顶点5坐标
        50, 0, 0, //顶点6坐标
      
      ]);
    // 三个一组 表示一个顶点的xyz坐标
    let attribute = new THREE.BufferAttribute( vertices, 3 );
    // 设置几何体attributes 属性的 position属性
    geometry.attributes.position = attribute;


    // --------------------- 法向量 ---------------------
    var normals = new Float32Array([
        0, 0, 1, //顶点1法向量
        0, 0, 1, //顶点2法向量
        0, 0, 1, //顶点3法向量
      
        0, 1, 0, //顶点4法向量
        0, 1, 0, //顶点5法向量
        0, 1, 0, //顶点6法向量
      ]);
    // 三个数据作为一组 表示一个顶点的法向量数据
    geometry.attributes.normal = new THREE.BufferAttribute( normals, 3 );

    let mesh_material = new THREE.MeshLambertMaterial({
        side: THREE.DoubleSide
    });

    const plane_mesh = new THREE.Mesh( geometry, mesh_material );

    scene.add( plane_mesh );
}

const TestNormal = {
    testNormalFunc
};

export default TestNormal;
